<?php 
namespace LDL\Twspider\C;
use VDB\Spider\QueueManager\QueueManagerInterface;
abstract class SpThreaded extends \Threaded{
/*	private  $queue ;
	public function setQueue(&$ueue){
		$this->queue= $ueue ;
	}


	 * @return  QueueManagerInterface

	public function getQueue(){
		return $this->queue ;
	}*/
	/**
	 * 重写同步方法 用WORK同步  不然是用每次添加进来的对像作为KEy
	 * 不同WORK之间还是会有线程问题的 只能保证多个TAsk在同一个WORKER里是同步的
	 * @param \Closure $func
	 * @return null
	 */

  public function synchronized($block, $_ = null ){
	/*  $re = null;
	  try{
	  	$this->worker->lock() ;pthreads v3 中已移除此方法
		  if(defined("IN_DEBUG")){
			  ob_start();
		  }
	  	$re=$func() ;
		  if(defined("IN_DEBUG")) ob_end_flush();
	  	$this->worker->unlock() ;
	  }finally{
		  return $re;
	  }*/
	 return  $this->worker->synchronized($block,$_);
  }

}
